﻿namespace Kent.Boogaart.Gauntlet
{
	/// <summary>
	/// Defines the functionality required of an output generator, which is responsible for generating output from a
	/// <see cref="Context"/>.
	/// </summary>
	/// <remarks>
	/// <para>
	/// Implementations of this interface generate output based on a given context. All the information required for the generation
	/// is typically already present in the context, and has been placed there by the <see cref="IInputTranslator"/> in the generation
	/// pipeline.
	/// </para>
	/// </remarks>
	public interface IOutputGenerator
	{
		/// <summary>
		/// Generates output for a given <see cref="Context"/>.
		/// </summary>
		/// <param name="context">
		/// The context.
		/// </param>
		void Generate(Context context);
	}
}